From ef335f7593c2481ee04792150e5dfb9acbb7b745 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Tue, 27 Jan 2009 05:09:42 +0000 Subject: [PATCH] (ftfont_has_char): If the arg FONT is a font-object, directly use GT_Get_Char_index. --- src/ftfont.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/ftfont.c b/src/ftfont.c index b28c4c3ea21..dea3bf069b4 100644 --- a/src/ftfont.c +++ b/src/ftfont.c @@ -62,7 +62,7 @@ struct ftfont_info { struct font font; #ifdef HAVE_LIBOTF - /* The following three members must be here in this order to be + /* The following four members must be here in this order to be compatible with struct xftfont_info (in xftfont.c). */ int maybe_otf; /* Flag to tell if this may be OTF or not. */ OTF *otf; @@ -1189,13 +1189,24 @@ ftfont_close (f, font) } static int -ftfont_has_char (entity, c) - Lisp_Object entity; +ftfont_has_char (font, c) + Lisp_Object font; int c; { - FcCharSet *charset = ftfont_get_fc_charset (entity); + if (FONT_ENTITY_P (font)) + { + FcCharSet *charset = ftfont_get_fc_charset (font); - return (FcCharSetHasChar (charset, c) == FcTrue); + return (FcCharSetHasChar (charset, c) == FcTrue); + } + else + { + struct ftfont_info *ftfont_info; + + ftfont_info = (struct ftfont_info *) XFONT_OBJECT (font); + return (FT_Get_Char_Index (ftfont_info->ft_size->face, (FT_ULong) c) + != 0); + } } static unsigned -- 2.30.2